﻿#define  _CRT_SECURE_NO_WARNINGS
//编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
//
//不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
//
//
//
//示例 1：
//
//输入：s = ["h", "e", "l", "l", "o"]
//输出：["o", "l", "l", "e", "h"]
//示例 2：
//
//输入：s = ["H", "a", "n", "n", "a", "h"]
//输出：["h", "a", "n", "n", "a", "H"]
//
//
//来源：力扣（LeetCode）
//链接：https ://leetcode.cn/problems/reverse-string
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
void reverseString(char* s, int sSize) {
    int i = 0;
    int j = 0;
    int left = 0;
    int right = sSize - 1;
    while (left < right) {
        char temp = s[left];
        s[left] = s[right];
        s[right] = temp;
        left++;
        right--;
    }
    return s;
}
// 给你一个 非空 整数数组 nums ，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。

//你必须设计并实现线性时间复杂度的算法来解决此问题，且该算法只使用常量额外空间。

//示例 1 ：
//
//输入：nums = [2, 2, 1]
//输出：1
//示例 2 ：
//
//输入：nums = [4, 1, 2, 1, 2]
//输出：4
//示例 3 ：
//
//输入：nums = [1]
//输出：1
//
//来源：力扣（LeetCode）
//链接：https ://leetcode.cn/problems/single-number
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
//// 
// 
#include<stdio.h>
int singleNumber(int* nums, int numsSize) {
    int i = 0;
    int j = 0;
    for (i = 0;i < numsSize;i++) {
         j = j ^ nums[i];
    }
    return j;
}
int main() {
    int nums[3] = { 2,2,1 };
    int numsSize = sizeof(nums) / sizeof(nums[0]);
   int ret= singleNumber( nums,  numsSize);
   printf("%d ", ret);
    return  0;
}

//丑数 就是只包含质因数 2、3 和 5 的正整数。
//
//给你一个整数 n ，请你判断 n 是否为 丑数 。如果是，返回 true ；否则，返回 false 。
//
//
//
//示例 1：
//
//输入：n = 6
//输出：true
//解释：6 = 2 × 3
//示例 2：
//
//输入：n = 1
//输出：true
//解释：1 没有质因数，因此它的全部质因数是{ 2, 3, 5 } 的空集。习惯上将其视作第一个丑数。
//示例 3：
//
//输入：n = 14
//输出：false
//解释：14 不是丑数，因为它包含了另外一个质因数 7 。
//
//
//来源：力扣（LeetCode）
//链接：https ://leetcode.cn/problems/ugly-number
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
bool isUgly(int n) {
    while (n) {
        if (n % 2 == 0)
            n /= 2;
        else if (n % 3 == 0)
            n /= 3;
        else if (n % 5 == 0)
            n /= 5;
        else if (n == 1)
            return true;
        else break;
    }
    return false;
}

